wpt_tmp->notes = xstrdup(rec->comment);
wpt_tmp->description = xstrdup(rec->name);
if (rec->url) {
- UrlLink l(rec->url);
- wpt_tmp->AddUrlLink(l);
+ wpt_tmp->AddUrlLink(rec->url);
} else if (NULL != (url=strstr(wpt_tmp->description, "{URL="))) {
*url = '\0';
url += 5;
url[strlen(url)-1] = '\0';
- UrlLink l(url);
- wpt_tmp->AddUrlLink(l);
+ wpt_tmp->AddUrlLink(url);
}
if (rec->image_name) {
if (strncmp(cin + 2, "bitmap", 6) == 0) {
cin = lrtrim(cin + 8);
if (*cin != '\0') {
- UrlLink l(cst_make_url(cin));
- wpt->AddUrlLink(l);
+ char* url = cst_make_url(cin);
+ wpt->AddUrlLink(url);
+ if (url) {
+ xfree(url);
+ }
}
}
{
public:
UrlLink() { }
- UrlLink(QString url) :
+ UrlLink(const QString url) :
url_(url)
{ }
- UrlLink(QString url, QString url_link_text) :
+ UrlLink(const char* url) :
+ url_(url)
+ { }
+ UrlLink(const QString url, const QString url_link_text) :
url_(url),
url_link_text_(url_link_text)
{ }
break;
case 2:
case 3:
- wpt_tmp->description = gbfgetpstr(file_in);;
+ wpt_tmp->description = gbfgetpstr(file_in);
break;
case 5:
- wpt_tmp->notes = gbfgetpstr(file_in);;
- break;
- case 6:
- link.url_link_text_ = gbfgetpstr(file_in);;
+ wpt_tmp->notes = gbfgetpstr(file_in);
break;
+ case 6: {
+ char* ult = gbfgetpstr(file_in);
+ link.url_link_text_ = ult;
+ if (ult) {
+ xfree(ult);
+ }
+ }
+ break;
case 7:
- wpt_tmp->icon_descr = gbfgetpstr(file_in);;
+ wpt_tmp->icon_descr = gbfgetpstr(file_in);
break;
case 8: /* NULL Terminated (vs. pascal) descr */
wpt_tmp->notes = gbfgetcstr(file_in);
break;
- case 9: /* NULL Terminated (vs. pascal) link */
- link.url_ = gbfgetcstr(file_in);
- break;
- case 0x10:
- link.url_link_text_ = gbfgetcstr(file_in);
- break;
+ case 9: { /* NULL Terminated (vs. pascal) link */
+ char* url = gbfgetcstr(file_in);
+ link.url_ = url;
+ if (url) {
+ xfree(url);
+ }
+ }
+ break;
+ case 0x10: {
+ char* ult = gbfgetcstr(file_in);
+ link.url_link_text_ = ult;
+ if (ult) {
+ xfree(ult);
+ }
+ }
+ break;
case 0x63:
wpt_tmp->latitude = gbfgetdbl(file_in);
break;
}
if ((mask & 0x10) && (str = gpi_read_string("Link"))) {
waypt_add_url(wpt, str, str);
+ if (str) {
+ xfree(str);
+ }
}
break;
}
break;
case 17: {
- UrlLink l(str);
- wpt->AddUrlLink(l);
+ wpt->AddUrlLink(str);
}
break;
case 18:
url_ct = FREAD_i32;
for (i = url_ct; (i); i--) {
- char* str = FREAD_CSTR;
- if (str && *str) {
+ QString str = FREAD_CSTR_AS_QSTR;
+ if (!str.isEmpty()) {
waypt_add_url(res, str, NULL);
#if GDB_DEBUG
DBG(GDB_DBG_WPTe, 1)
printf(MYNAME "-wpt \"%s\" (%d): url(%d) = %s\n",
- sn, wpt_class, url_ct - i, str);
+ sn, wpt_class, url_ct - i, CSTR(str));
#endif
}
}
cend = cx + strlen(cx);
}
- cx = lrtrim(xstrndup(cx, cend - cx));
- if (*cx) {
- UrlLink l(cx);
- wpt->AddUrlLink(l);
- } else {
- xfree(cx);
+ {
+ QString url = QString::fromUtf8(cx, cend-cx).trimmed();
+ if (!url.isEmpty()) {
+ wpt->AddUrlLink(url);
+ }
}
if (*cend++) {
wpt->longitude = shp->dfXMin;
wpt->shortname = xstrdup(name);
if (url) {
- UrlLink l(url);
- wpt->AddUrlLink(l);
+ wpt->AddUrlLink(url);
}
waypt_add(wpt);
break;
*/
holder = csv_stringtrim(s, "", 0);
if (strstr(holder, "http:") != NULL) {
- UrlLink link(holder);
- wpt_tmp->AddUrlLink(link);
+ wpt_tmp->AddUrlLink(holder);
}
xfree(holder);
break;
notes[0] = '\0';
gbfread(notes, 1, name_length, tpo_file_in);
notes[name_length] = '\0'; // Terminator
- UrlLink l(notes);
- waypoint_temp->AddUrlLink(l);
+ waypoint_temp->AddUrlLink(notes);
//printf("Notes: %s\n", notes);
xfree(notes);
}
notes[0] = '\0';
gbfread(notes, 1, name_length, tpo_file_in);
notes[name_length] = '\0'; // Terminator
- UrlLink l(notes);
- waypoint_temp->AddUrlLink(l);
+ waypoint_temp->AddUrlLink(notes);
//printf("Notes: %s\n", notes);
xfree(notes);
}
break;
case fld_url: {
- UrlLink l(s);
- wpt->AddUrlLink(l);
+ wpt->AddUrlLink(s);
}
break;